package com.common.platform.base.utils;

import java.util.List;
import java.util.Map;
import java.util.Set;

public class ValidateUtil {

    /**
     * 对象是否不为空
     */
    public static boolean isNotEmpty(Object o){
        return !isEmpty(o);
    }

    /**
     * 对象是否为空
     */
     public static boolean isEmpty(Object o) {
         if(o==null){
             return true;
         }
         if(o instanceof  String) {
             return o.toString().trim().equals("");
         } else if (o instanceof List) {
             return ((List) o).size() == 0;
         } else if (o instanceof Map) {
             return ((Map) o).size() == 0;
         } else if (o instanceof Set) {
             return ((Set) o).size() == 0;
         } else if (o instanceof Object[]) {
             return ((Object[]) o).length == 0;
         } else if (o instanceof int[]) {
             return ((int[]) o).length == 0;
         } else if (o instanceof long[]) {
             return ((long[]) o).length == 0;
         }
         return false;
     }

    /**
     * 对象组中是否存在空对象
     */
    public static boolean isOneEmpty(Object... os) {
        for (Object o : os) {
            if (isEmpty(o)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 对象组中是否全是空对象
     */
    public static boolean isAllEmpty(Object... os) {
        for (Object o : os) {
            if (!isEmpty(o)) {
                return false;
            }
        }
        return true;
    }
}
